/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.jjsoft.disco.gco.ngc;

import com.jjsoft.disco.gco.dao.GenericController;
import com.jjsoft.disco.gco.mdl.Unidadmedida;
import com.jjsoft.disco.gco.util.AtributoInvalidoException;
import com.jjsoft.disco.gco.util.IdDuplicadoException;
import com.jjsoft.disco.gco.util.UnidadMedidaValidadorException;
import com.jjsoft.disco.gco.util.ValidarAtributoUtil;
import java.util.List;

/**
 *
 * @author FernandoBac
 */
public class UnidadMedidaManager {
    GenericController<Unidadmedida> controladorUnidadMedida = new GenericController<Unidadmedida>();
 public void crearUnidadMedida(Unidadmedida um) throws UnidadMedidaValidadorException
    {
        try {
            ValidarAtributoUtil.validarObjetoNulo("Unidad Medida", um);
            ValidarAtributoUtil.validarStringNuloVacio("Nombre", um.getNombre());
            ValidarAtributoUtil.validarDoubleNegativo("Onzas", um.getOnzas());
            if(controladorUnidadMedida.create(um).equals("1"))
            {
                throw new UnidadMedidaValidadorException(new IdDuplicadoException("Ya existe una categoria con ese número de identificación",um.getIdunidadMedida()));
            }
        } catch (AtributoInvalidoException ex) {
            throw new UnidadMedidaValidadorException(ex);
        }    
    }
    
    public void editarUnidadMedida(Unidadmedida um) throws UnidadMedidaValidadorException
    {
        try {
            ValidarAtributoUtil.validarObjetoNulo("Unidad Medida", um);
            ValidarAtributoUtil.validarStringNuloVacio("Nombre", um.getNombre());
            ValidarAtributoUtil.validarStringNuloVacio("Onzas", um.getOnzas().toString());
            ValidarAtributoUtil.validarDoubleNegativo("Onzas", um.getOnzas());
            
            controladorUnidadMedida.edit(um);
        } catch (AtributoInvalidoException ex) {
            throw new UnidadMedidaValidadorException(ex);
        }  catch (Exception ex) {
            throw new UnidadMedidaValidadorException("Error desconocido");
        }
    }
    public List<Unidadmedida> listarUnidadesMedida()
    {
        return controladorUnidadMedida.findWhere(new Unidadmedida(), "estado=0");
    }
    
   
    
    public void eliminarUnidadMedida(Unidadmedida um)
    {
        um.setEstado(1);
        try {
            controladorUnidadMedida.edit(um);
        } catch (Exception ex) {
            ex.printStackTrace();
        } 
    }   
}
